package com.example.voucher.extension;

import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.springframework.stereotype.Component;

/**
 * 
 * @author jie.deng
 *
 */
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
@Component
public @interface ExtensionImpl {

    /**
     * 扩展了哪些接口 未指定则赋值为实现的所有接口(筛选标注有ExtPointAnno的接口)
     * 
     * @return
     */
    public Class<?>[] extendFrom() default {};

    /**
     * 适用于哪些场景
     * 
     * @return
     */
    public String[] applyTo() default {ScenarioCapable.SCENARIO_CODE_DEFAULT};

}
